package com.ssy.lingxi.marketing.model.bo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 满额促销 - BO
 * @author fhj
 * @date 2021/06/17
 * @version 2.0.0
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(value = "5",description = "满额促销")
public class FullMoneyBO extends ActivityDefinedBO{

    private static final long serialVersionUID = -1599056052867169201L;
    /**
     * 满额促销类型：1-满额减 2-满额折
     * */
    @NotNull(message = "满额促销类型不能为空")
    @ApiModelProperty(dataType ="integer",value = "满额促销类型：1-满额减 2-满额折")
    private Integer type;

    /**
     * 优惠阶梯
     * */
    @ApiModelProperty(dataType ="array:object",value = "优惠阶梯")
    private List<LadderBO> ladderList;

    @Data
    public static class LadderBO implements Serializable {
        private static final long serialVersionUID = 630068901996188724L;
        /**
         * 优惠门槛 - 金额
         * */
        @ApiModelProperty(dataType ="float",value = "优惠门槛 - 金额")
        private BigDecimal key;

        /**
         * 优惠值 - 金额或折扣
         * */
        @ApiModelProperty(dataType ="float",value = "优惠值 - 金额或折扣")
        private BigDecimal value;
    }

    /**
     * 允许叠加活动类型：1-特价促销，2-直降促销，3-折扣促销，6-赠送促销，13-换购
     * */
    @ApiModelProperty(dataType ="array:integer",value = "允许叠加活动类型")
    private List<Integer> allowActivity;

    /**
     * 是否允许叠加优惠劵
     * */
    @NotNull(message = "是否允许叠加优惠劵不能为空")
    @ApiModelProperty(dataType ="boolean",value = "是否允许叠加优惠劵")
    private Boolean allowCoupon;

    /**
     * 超限规则：1-按个人限购最高级享受优惠 2-不可购买
     * */
    @ApiModelProperty(dataType ="integer",value = "超限规则：1-按个人限购最高级享受优惠 2-不可购买")
    private Integer exceedRule;

    /**
     * 活动描述
     * */
    @ApiModelProperty(dataType ="string",value = "活动描述")
    private String describe;


}